{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib\n",
    "from draw3d  import *\n",
    "from draw2d  import *\n",
    "from colors import *\n",
    "from vectors import *\n",
    "from matplotlib.patches import Polygon\n",
    "from matplotlib.collections import PatchCollection\n",
    "from math import sqrt\n",
    "from math import isqrt,radians\n",
    "from math import sin,cos,tan,degrees\n",
    "from random import random\n",
    "from math import pi\n",
    "\n",
    "# 多维长度计算\n",
    "def length(v):\n",
    "    return sqrt(sum([coord ** 2 for coord in v]))\n",
    "\n",
    "def scale(scalar,vector):\n",
    "    return tuple((v*scalar) for v in vector)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 点积：测量向量对齐情况"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 点积是计算两个向量之间的对齐情况\n",
    "2. 点积为正时，两向量的夹角小于90度，并且两向量越大，乘积越大。点积为负时，两向量夹角大于90度，两向量越长，点积负值越小。点积为0时，两向量为90度，相互垂直。\n",
    "3. 点积 = (x,y,z) * (a,b,c) = (ax+by+cz)\n",
    "4. 简单的想：是利用乘法性质的负负得正，正负得负，正正的正来判断角度的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 点积计算\n",
    "def dot(u,v):\n",
    "    return sum([coord1 * coord2 for coord1 , coord2 in zip(u,v)])\n",
    "\n",
    "dot((3,4),(2,3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***3.3.4 用点积测量角度***\n",
    "1. 当夹角角度为0到180度，点积u*v的取值范围是u和v长度乘积的1到-1倍。有$u*v=|u|*|v|*cos(\\theta)$,$\\theta$是u和v之间的角度。\n",
    "2. 计算角度公式：$cos(\\theta) = (u*v/(|u|*|v|))$,$\\theta=arccos((u*v)/(|u|*|v|))$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<center>$u*v=|u|*|v|*cos(\\theta)$ <br> \n",
    "$cos(\\theta) = (u*v/(|u|*|v|))$,$\\theta=arccos((u*v)/(|u|*|v|))$</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**a*b的几何意义是|a|在|b|方向上的投影（仅在二维、三维空间向量有意义）**  <== 对于以下两个图不是特别理解为什么和点积有关系"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img3-2.gif)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img3-1.gif)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "~~证：有u,v两向量，u,v有夹角$\\theta$的范围在0到180度，点积u*v长度乘积的取值范围在u和v长度乘积的1到-1倍之间。~~"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "~~已知公式：$ length =\\sqrt{x^2 + y^2},x = length * cos(\\theta),y =  length * sin(\\theta)$~~"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "~~设：|u|和|v|为u,v的向量长度，则有 length = |u|,x=|v|.得: v = u * $cos(\\theta)$。同理，有 length = |v| , x = |u| ,得： u = v * cos($\\theta$)。 因为向量乘以一个标量不改变其角度，又因为向量点积计算的顺序不影响结果，所以得$u*v = |u|*|v|*cos(\\theta)$~~"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 计算两向量夹角的角度\n",
    "def angle_between(v1,v2):\n",
    "    return acos(\n",
    "        dot(v1,v2) / (length(v1) * length(v2))\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4. 证明：$u*v=|u|*|v|*cos(\\theta)$<a href=\"https://www.zhihu.com/question/354296745\">证明过程1</a>\n",
    "<a href=\"https://blog.csdn.net/zhangyingjie09/article/details/88375120\">证明过程2</a>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "证明过程1中的$ pi - \\theta$是因为点积是计算两向量的对齐情况，而cos($\\theta$)在1到-1之间，所以需要用$pi - \\theta$来确定cos($\\theta$)的正负值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<center>$c^2 = a^2 + b^2 - 2ab*cos(C)$</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-14.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.11：根据图3-33，将u\\*v、u\\*w和v\\*w从大到小排列。三个箭头从左到右分别是w,u,v***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-13.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$u*v > w*u > v * w$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.12：(-1, -1, 1)和(1, 2, 1) 的点积是多少？这两个三维向量的夹角是大于90°、小于 90°，还是正好等于90°？***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "答: 点积等于-2，夹角大于90度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.13（小项目）：对于两个三维向量u和v，(2u)\\*v和u\\*(2v)的值都等于2(u\\*v)。在这种情况下，u\\*v=18，而(2u)\\*v和u\\*(2v)都是36，是原结果的2倍。请证明这个规则对于任意实数s都适用，而不仅仅是2。换句话说，请证明对于任意s，(su)\\*v和u\\*(sv)的值都等于s(u\\*v)。***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "证：设 $u = (a,b,c) , v = (x,y,z). u * v = (ax+by+cz)$,$(s * u)*v = (s * (a,b,c))(x,y,z) = (as,bs,cs)(x,y,z) = (axs+bys+czs) = s*(ax+by+cz) = s (u*v)$,同理：$u * (s * v) = (a,b,c) * (xs,ys,zs)) = s * (ax+by+cz) = s * (u * v)$  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.14（小项目）：用代数证明向量与其自身的点积是其长度的平方。***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "解：设 有向量u = (a,b,c), $u * u = (a*a + b*b + c*c)$,向量长度|u| = $\\sqrt{a^2 + b^2 + c^2}$,所以得向量与其自身的点积是其长度的平方"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.15（小项目）：找出长度为3的向量u和长度为7的向量v，使u\\*v=21。再找出一对向量u和v，使u\\*v=-21。最后，再找出三对长度分别为3和7的向量，并证明它们的长度都在-21和21之间。***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "答：(3,0)和(7,0),(-3,0)和(7,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "u=(1.710031918152088, 2.4649119332952023), v =(6.6202447292460445, -2.274282243893658)\n",
      "length of u: 3.000000, length of v: 7.000000, dot product :5.714924\n",
      "u=(-2.552100430295024, 1.5769538337211884), v =(6.953738400248746, 0.8034439998568714)\n",
      "length of u: 3.000000, length of v: 7.000000, dot product :-16.479645\n",
      "u=(0.8965061286008045, -2.8629140331803886), v =(-3.3447956162926236, -6.149174114076592)\n",
      "length of u: 3.000000, length of v: 7.000000, dot product :14.605927\n"
     ]
    }
   ],
   "source": [
    "def random_vector_of_length(l):\n",
    "    # to_cartesian是极坐标转笛卡尔坐标\n",
    "    return to_cartesian((l, 2*pi*random()))\n",
    "\n",
    "pairs = [(random_vector_of_length(3), random_vector_of_length(7)) for i in range(0,3)]\n",
    "for u,v in pairs:\n",
    "    print(\"u=%s, v =%s\"% (u,v))\n",
    "    print(\"length of u: %f, length of v: %f, dot product :%f\"% (length(u), length(v), dot(u,v)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.16：设u和v是向量，其中|u|=3.61，|v|=1.44。如果u和v的夹角是101.3°，那么u\\*v是什么？\n",
    "(a) 5.198\n",
    "(b) 5.098\n",
    "(c) -1.019\n",
    "(d) 1.019***"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-1.0186064362303022\n"
     ]
    }
   ],
   "source": [
    "print(3.61*1.44*cos(101.3*pi/180))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.17（小项目）：通过把(3, 4)和(4, 3)转换为极坐标并取角的差值，来求出它们之间的角度。答案是以下哪一个？\n",
    "(a) 1.569\n",
    "(b) 0.927\n",
    "(c) 0.643\n",
    "(d) 0.284\n",
    "提示：结果应与点积公式求得的值一致。***\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.2837941092083278\n",
      "0.283794109208328\n"
     ]
    }
   ],
   "source": [
    "# 和3.3.4的两个图一样，|v|在|u|上的投射\n",
    "u = to_polar((3,4))\n",
    "v = to_polar((4,3))\n",
    "print(u[1]-v[1])\n",
    "print(angle_between((3,4),(4,3)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.18：(1, 1, 1)与(-1, -1, 1)之间的角是多少度？\n",
    "(a) 180°\n",
    "(b) 120°\n",
    "(c) 109.5°\n",
    "(d) 90°***"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-1\n",
      "1.7320508075688772\n",
      "1.7320508075688772\n",
      "-0.33333333333333337\n",
      "弧度= 1.9106332362490186 角度= 109.47122063449069\n"
     ]
    }
   ],
   "source": [
    "v = length((1,1,1))\n",
    "u = length((-1,-1,1))\n",
    "d = dot((1,1,1),(-1,-1,1))\n",
    "\n",
    "k = d / (v*u)\n",
    "\n",
    "print(d)\n",
    "print(v)\n",
    "print(u)\n",
    "print(k)\n",
    "print(\"弧度=\",acos(k),\"角度=\",degrees(acos(k)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 向量积：测量向量垂直情况"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 向量积只适用于三维向量，输入向量u,向量v,输出向量(u*v)\n",
    "2. 右手规则：用右手食指指向x轴，弯曲三根手指指向y轴，拇指拇指指向z轴\n",
    "3. 向量积可以用来定义方向\n",
    "4. 向量积始终垂直于输入的两个向量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***求向量积的长度(相当于一个平行四边形)***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "面积 = $|u| * |v| * \\sin(\\theta)$，$|v| * \\sin(\\theta)$相当于是平行四边形的高，因为这个高相当于y轴"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-15.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***计算三维向量的向量积***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$ u * v = (u_y * v_z - u_z * v_y , u_z * v_x - u_x * v_z, u_x * v_y - u_y * v_x )$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cross(u , v):\n",
    "    ux,uy,uz = u\n",
    "    vx,vy,vz = v\n",
    "    return (uy*vz - uz*vy, uz*vx - ux*vz, ux*vy - uy*vx)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***练习3.19：如图3-45所示，各图中都存在三个相互垂直的箭头，分别表示x轴、y轴和z轴的正方向。在这些显示为三维框的透视图中，框的背面是灰色的。四幅图中的哪一个与我们选择的相符？也就是说，哪张图显示了我们所画的x轴、y轴和z轴，即使从不同的角度来看也是如此？***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-16.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "答：a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "解：从上向下看图3-45a，我们会像往常一样看到x轴和y轴，且z轴指向我们。与我们约定的方向一致的是图3-45a。\n",
    "在图3-45b中，z轴指向我们，而y轴正方向与x轴正方向顺时针成90°角。这与我们的方向不一致。\n",
    "如果我们从z轴正方向上的某点看图3-45c（从框的左侧），会看到y轴正方向与x轴正方向逆时针成90°角。图3-45c也与我们的方向一致。\n",
    "从框左侧看图3-45d，z轴正方向应该是朝向我们的，y轴正方向仍位于x轴正方向的逆时针方向。这与我们的方向也是一致的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.20：如果把三条坐标轴立在镜子前，镜子里图像的方向是相同的还是不同的呢？\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "答： 不同，在原图中x轴正半轴在y轴正半轴的顺时针方向，在镜子中x轴正半轴在y轴正半轴的逆时针方向"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-20.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.21：(0, 0, 3) × (0, -2, 0)的结果指向什么方向？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(6, 0, 0)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross((0, 0, 3),(0, -2, 0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "答：指向x轴的正方向"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.22：(1, -2, 1)和(-6, 12, -6)向量积的坐标是多少？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0, 0, 0)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross((1, -2, 1),(-6, 12, -6))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.23（小项目）：如图3-47所示，平行四边形的面积等于它的底边长乘以它的高。基于此，请解释公式 |u| * |v| * sin($\\theta$)是有意义的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-17.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-18.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.24：向量积(1, 0, 1) × (-1, 0, 0)的结果是什么？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0, -1, 0)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cross((1, 0, 1),(-1, 0, 0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.25：使用Python的cross函数计算 (0,0,1) * v，其中第二个向量v是几个不同的值。每个结果的z坐标是多少，为什么？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0, -1, 0)\n",
      "(-1, -1, 0)\n",
      "(0, -1, 0)\n",
      "(-1, -1, 0)\n",
      "(-1, -1, 0)\n",
      "(-2, 2, 0)\n"
     ]
    }
   ],
   "source": [
    "print(cross((0, 0, 1),(-1, 0, 0)))\n",
    "print(cross((0, 0, 1),(-1, 1, 0)))\n",
    "print(cross((0, 0, 1),(-1, 0, 1)))\n",
    "print(cross((0, 0, 1),(-1, 1, 1)))\n",
    "print(cross((0, 0, 1),(-1, 1, 2)))\n",
    "print(cross((0, 0, 1),(2, 2, 3)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "答： 因为 决定z坐标是x和y,而(0,0,1)中x和y都是0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.26（小项目）：用代数法证明 u * v 垂直于u和v，不管u和v的坐标是多少。提示：将(u × v) * u 和(u × v) * v 展开成坐标用于证明。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-19.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.5 在二维平面上渲染三维对象"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "octahedron = [\n",
    "    [(1,0,0), (0,1,0), (0,0,1)],\n",
    "    [(1,0,0), (0,0,-1), (0,1,0)],\n",
    "    [(1,0,0), (0,0,1), (0,-1,0)],\n",
    "    [(1,0,0), (0,-1,0), (0,0,-1)],\n",
    "    [(-1,0,0), (0,0,1), (0,1,0)],\n",
    "    [(-1,0,0), (0,1,0), (0,0,-1)],\n",
    "    [(-1,0,0), (0,-1,0), (0,0,1)],\n",
    "    [(-1,0,0), (0,0,-1), (0,-1,0)],\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取面中的顶点\n",
    "def vertices(faces):\n",
    "    return list(set([vertex for face in  faces for vertex in face]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 利用点积提取三维向量在给定方向上的分量\n",
    "def component(v,direction):\n",
    "    return (dot(v,direction) / length(direction))\n",
    "\n",
    "dot((2,2,3),(1,0,0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 接收三维向量返回二维向量\n",
    "def vector_to_2d(v):\n",
    "    return (component(v,(1,0,0)) , component(v,(0,1,0)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 所有三维向量降维到二维向量\n",
    "def face_to_2d(face):\n",
    "    return [vector_to_2d(vertex) for vertex in face]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "blues = matplotlib.colormaps.get_cmap('Blues')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 接收一个向量，返回相同方向长度为1的向量\n",
    "def unit(v):\n",
    "    return scale(1./length(v),v)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 接收一个面，返回垂直于他的向量，(subtract(face[1], face[0])是两个向量相减)\n",
    "def normal(face):\n",
    "    return (cross(subtract(face[1], face[0]), subtract(face[2] , face[0])))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](../images/img2-21.jpg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def render(faces, light=(1,2,3), color_map=blues, lines=None):\n",
    "    polygons = []\n",
    "    for face in faces:\n",
    "        # 对于每个面，计算一个长度为1、垂直于它的向量\n",
    "        unit_normal = unit(normal(face))\n",
    "        # 只有当向量的z 分量为正时(换句话说，当它指向观察者时), 才会继续执行\n",
    "        if unit_normal[2] > 0 :\n",
    "            # 法线向量和光源向量的点积越大，阴影越小\n",
    "            c = color_map(1 - dot(unit(normal(face)), unit(light)))\n",
    "            # 每个三角形的边指向一个可选的lines参数，并显示正在绘制的现状骨架\n",
    "            p = Polygon2D(*face_to_2d(face), fill=c, color=lines)\n",
    "            \n",
    "            polygons.append(p)\n",
    "    draw2d(*polygons, axes=False, origin=False, grid=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "render(octahedron, color_map=blues, lines=black)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.27（小项目）：找到定义八面体12条边的向量对，并用Python绘制出所有的边。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "top = (0,0,1)\n",
    "bottom = (0,0,-1)\n",
    "xy_plane = [(1,0,0),(0,1,0),(-1,0,0),(0,-1,0)]\n",
    "edges = [Segment3D(top,p) for p in xy_plane] +\\\n",
    "            [Segment3D(bottom, p) for p in xy_plane] +\\\n",
    "            [Segment3D(xy_plane[i],xy_plane[(i+1)%4 ]) for i in range(0,4)\n",
    "        ]\n",
    "draw3d(*edges)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习3.28：八面体的第一个面是[(1, 0, 0), (0, 1, 0), (0, 0, 1)]。这是定义该面顶点的唯一有效顺序吗？\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "解：不是，比如[(0, 1, 0), (0, 0, 1), (1, 0, 0)]是相同的三个点，按这个顺序，向量积仍然指向同一个方向。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***图像的三维对象的表面都可以表示成三角形的集合，其中每个三角形分别由代表其顶点的三个向量定义***"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py38",
   "language": "python",
   "name": "python3.8"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.20"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
